package com.dominator.utils.pay;

import org.apache.commons.codec.digest.DigestUtils;
import org.springframework.util.StringUtils;

import java.util.Map.Entry;
import java.util.Set;
import java.util.SortedMap;

/**
 * 微信支付签名算法
 * 
 * @author asher.xu
 * @version 1.0 2015年8月5日 下午6:27:15 asher.xu
 */
public class WxPaySign {
    private static String characterEncoding = "UTF-8";
	public static String createSign(SortedMap<String, Object> sorted,String key) {
		StringBuffer sb = new StringBuffer();
		Set<Entry<String, Object>> entries = sorted.entrySet(); // 所有参与传参的参数按照accsii排序（升序）
		for (Entry<String, Object> entry : entries){
			if (!(StringUtils.isEmpty(entry.getValue()) || "sign".equals(entry.getKey()))){
				sb.append(entry.getKey() + "=" + entry.getValue() + "&");
			}
		}
		System.out.println("key="+key);
		sb.append("key=" + key);
		System.err.println(sb.toString());
		String sign = DigestUtils.md5Hex(sb.toString()).toUpperCase();
		System.out.println("------"+sign);
		return sign;
	}
}
